基于RocketMQ的分布式事务解决方案(实操) | 您所在的位置:网站首页 › redistemplate 原子操作 › 基于RocketMQ的分布式事务解决方案(实操) |
的分布式事务解决⽅案(实操) 基于 RocketMQ 的分布式事务解决⽅案 前⾔ 什么分布式事务?
随着互联⽹的快速发展,软件系统由原来的单体应⽤转变为分布式应⽤,分布式系统会把⼀个应⽤系统拆分为可独⽴部署的多个服 务,因此需要服务与服务之间远程协作才能完成事务操作,这种分布式系统环境下由不同的服务之间通过⽹络远程协作完成事务称之 为分布式事务,例如⽤户注册送积分事务、创建订单减库存事务,银⾏转账事务等都是分布式事务。 分布式事务产⽣的场景 例 1:典型的场景就是微服务架构 微服务之间通过远程调⽤完成事务操作。 ⽐如:订单微服务和库存微服务,下单的同时订单微服务 请求库存微服务减库存。 简⾔之:跨JVM进程产⽣分布式事务。 例2:单体系统访问多个数据库实例 当单体系统需要访问多个数据库(实例)时就会产⽣分布式事务。 ⽐如:⽤户信息和订单信息分 别在两个MySQL实例存储,⽤户管理系统删除⽤户信息,需要分别删除⽤户信息及⽤户的订单信息,由于数据分布在不同的数据实 例,需要通过不同的数据库链接去操作数据,此时产⽣分布式事务。 简⾔之:跨数据库实例产⽣分布式事务。 如何解决分布式事务 根据CAP和BASE理论,分布式事务解决的核⼼思想主要是:⽆法做到强⼀致性,但每个应⽤都可以根据⾃⾝的业务特点,采⽤适当的⽅式 来使系统达到最终⼀致性,⽽最终⼀致性涉及到⽅式主要是⼆阶段提交和三阶段提交。 ⽬前主要解决分布式事务的⽅式是通过RocketMQ或者阿⾥推出的SEATA框架解决,本⽂主要是通过RocketMQ实操来处理分布式事务的 场景。 RocketMQ 基本使⽤ 关于RocketMQ的基本的消息发送⽅式和消息类型,⼤家可以到官⽹⾃⾏学习:,MQ解决分布式事务主要是通过事务消息的⽅式来解决。 |
CopyRight 2018-2019 实验室设备网 版权所有 |